import { Shape } from '../shape'

export class tmArc extends Shape {
  draw(): this {
    if (!this.canvas.ctx) return this
    const ctx = this.canvas.ctx
    const x = this.x
    const y = this.y
    const width = this.width
    const height = this.height
    const fillStyle = this.fillStyle
    const strokeStyle = this.strokeStyle
    const lineWidth = this.lineWidth
    const r = this.r
    const sAngle = this.sAngle * (Math.PI / 180) - Math.PI / 2
    const eAngle = this.eAngle * (Math.PI / 180) - Math.PI / 2

    ctx.beginPath()
    if (ctx.setFillStyle) {
      ctx.setFillStyle(fillStyle)
      ctx.setLineWidth(lineWidth)
      ctx.setStrokeStyle(strokeStyle)
      ctx.setLineJoin(this.lineJoin)
      ctx.setLineDash(this.lineDash, this.lineDashOffset)
    } else {
      ctx.fillStyle = fillStyle
      ctx.lineWidth = lineWidth
      ctx.strokeStyle = strokeStyle
      ctx.lineJoin = this.lineJoin
      ctx.setLineDash(this.lineDash, this.lineDashOffset)
    }

    ctx.arc(x, y, r, sAngle, eAngle)

    ctx.fill()
    ctx.stroke()

    return this
  }
}
